Method and system for code division multiple access communication with increased capacity through self-noise reduction

ABSTRACT

A method and system for constructing orthogonal codes of length N for use in a network utilizing quasi-synchronous code division multiple access combined with time division duplexing. The method determines the balanced vectors of length N, being all possible cross-correlation vectors resulting from zero cross-correlation of codes of length N. An arbitrary code of length N is utilized, and a bitwise XOR-ing is performed with all the balanced vectors to produce a set of codes with which the arbitrary code is orthogonal. A bitwise XOR-ing of the original balanced vectors is performed and the code is added to a set of orthogonal codes if the result of the bitwise XOR-ing of the original balanced vectors is balanced. The method is repeated until the set of orthogonal codes is complete.

PRIORITY

This is a continuation application of U.S. application Ser. No. 09/306,589, filed on May 6, 1999 now U.S. Pat. No. 6,324,159. This application claims the benefit of the filing date of U.S. patent application Ser. No. 60/084,439, filed on May 6, 1998, for “METHOD AND APPARATUS FOR CODE DIVISION MULTIPLE ACCESS COMMUNICATION WITH INCREASED CAPACITY THROUGH SELF-NOISE REDUCTION” to Mennekens, et al.

FIELD OF THE INVENTION

The invention is situated in the field of Quasi Synchronous Code Division Multiple Access combined with Time Division Duplexing.

DESCRIPTION OF THE RELATED TECHNOLOGY

CDMA (Code Division Multiple Access) is one of the leading technologies in today's and future wireless and wireline communications systems.

Also known as Direct Sequence Spread Spectrum, CDMA is the best known representative of the class of spread spectrum modulation schemes. A CDMA waveform is generated by spreading (EXOR-ing) the data stream with a PN-code, resulting in a higher bandwidth, usually at lower power spectral density. Different users are multiplexed by using orthogonal or quasi-orthogonal codes.

CDMA is used for a variety of reasons. CDMA has its origin in the military, where use of PN-codes (Pseudo Noise) was exploited for the sake of its Low Probability of Intercept (LPI) or its Low Probability of Detection (LPD). Since the late eighties, civil applications started to be developed, and have now reached a high level of maturity and market penetration. Advantages of spread spectrum include the inherent interference rejection capabilities, the efficient way for multiplexing multiple services, the higher capacity, a more efficient use of the spectrum and the lower terminal costs.

In satellite communications, CDMA is being exploited for low rate, medium rate as well as broadband type of communications. Low rate applications include, e.g., SMS (Short Messaging Services), E-mail over satellite, remote meter reading, voice and data services (fax), and positioning and geolocation applications.

When used in the VHF and UHF bands, one talks about the so-called ‘Little LEO’ (Low Earth Orbit) applications. CDMA is used for its capability of coping with high interference levels in these bands, and because it allows to multiplex a high amount of users with limited protocol overhead. In order to provide global coverage, they are usually store-and-forward satellite systems with sophisticated OBP (On-Board Processing) capabilities.

Data and fax services using CDMA are found in the L and S bands (in the case of the so-called ‘big LEO’ constellations) and Ku-bands (when using transponders of GEO satellites). Different systems can share the same part of the spectrum. Cost-effective terminals are possible by exploiting a high degree of on-chip integration.

The Ku-band frequencies are mostly used by geostationary satellites, for applications such as DBS (Direct Broadcasting by Satellite). With the enormous growth of the demand for medium rate data services (mostly for the transport of Internet data), transponders in Ku-band are increasingly used also for implementing these data services (multiples of 64 kbps net user data rate).

CDMA-based solutions have an important cost advantage over the traditional PSK-based VSAT solutions. Ground station development is facilitated using the CDMA DataSat Development System. Other application examples in the Ku-band include the combination of terrestrial low cost networks (based on DECT) with a S-CDMA (Synchronous CDMA) satellite for multiplexing the different telephone channels. In more and more cases, CDMA is being used as an overlay to existing satellite services. This is a very efficient use of spread spectrum in view of the limited spectrum being available. One such example is D-SNG (Digital Satellite News Gathering), where the CDMA-based coordination channels are put on top of the transponder QPSK DVB (Digital Video Broadcasting) signals.

Besides the ongoing developments using existing GEO capacity, LEO-based satellite systems are under development to provide true broadband access to individual users, using CDMA technology. Several Mbit/s can be offered to the individual user. In some cases, these spread spectrum high-rate applications share the spectrum with other, non-CDMA services, by realizing links with very low power spectral density.

CDMA Applications

Probably the best known satellite application using CDMA technology is navigation. Both GPS (Global Positioning System) and GLONASS (GLObal Navigation Satellite System, the Russian counterpart) use Direct Sequence Spread Spectrum waveforms for obtaining accurate pseudo-range measurements, which are the raw data to calculate a position fix. GPS has been complemented with the EGNOS (European Geostationary Navigation Overlay System) and the American WAAS (Wide Area Augmentation System), to increase the performance.

Proposed European GNSS-2 (Global Navigation Satellite System) will provide higher accuracy and increased data rate using more sophisticated waveforms. Besides the vast consumer market for standard receivers, there's also a professional market for RTK (Real-Time Kinematic) receivers. These applications exploit the increased accuracy associated with tracking (or pseudo-tracking) of the P-Code(Precision Code) of GPS or GLONASS satellites. Alternative navigation systems are being developed, based on combined pseudo-range and Doppler measurements.

In wireless terrestrial communications, one can make a distinction between applications in licensed and in unlicensed bands.

UMTS Applications

In licensed bands, the best known system under development is the UMTS (Universal Mobile Telecommunications System), based on W-CDMA (Wideband CDMA) technology. Worldwide, this development fits in the IMT-2000 (International Mobile Telephone System) initiative from the ITU, which aims at realizing a true worldwide applicable 3G standard. The benefits of CDMA exploited here are the ability to merge different types of services (voice, data, video) over the same band, using orthogonal PN sequences of different lengths, leading to the best capacity(bits/Hz). This so-called 3G (3rd Generation) cellular networks will be commercially exploited from 2001 on, as an extension to the worldwide deployed GSM networks.

The provision of the license-free ISM(Industrial, Scientific and Medical) bands has boosted a lot of other terrestrial wireless applications. Well-known ISM bands are the 902-928 MHz band in the US, and the 2.4-2.4835 GHz band worldwide. CDMA is used here for its ability to share the same spectrum with other applications. Short range and Long range communications are being realized in these shared bands, efficiently rejecting the MAI (Multiple Access Interference). Data rates of several hundreds of kilobits per second are possible in this way.

Furthermore, applications such as from CATV modems and powerline modems also benefit CDMA, as once again the unwanted unpredictable interference (e.g., ingress noise cancelled) is efficiently through the processing gain of the spread spectrum modulation scheme.

U.S. Pat. No. 5,872,810 and European Patent Application EP-A-0767544 describe a flexible hardware platform on which any PN code family can be downloaded on on-chip RAM; the PN code properties and their influence on the performance of a CDMA link can be analyzed with this platform and these documents further describe a CDMA transceiver integrated circuit on which any PN codes can be stored on on-chip RAM.

De Gaudenzi et al. describe in U.S. Pat. No. 5,327,467 a CDMA-based system primarily of interest for mobile communications.

In U.S. Pat. No. 5,327,455, they describe a QPSK/CDMA modulation scheme, using preferentially phased Gold codes for spreading the data streams;

In R. De Gaudenzi, C. Elia and R. Viola, “Bandlimited quasi-synchronous CDMA: A novel access technique for mobile and personal communication systems,” IEEE Selected Areas in Communications, vol. 10, no. 2, pp. 328-348, February 1992, CDMA-base satellite communications system exploiting Quasi-Synchronous CDMA in order to obtain a high efficiency together with interference rejection capabilities are described.

SUMMARY

One aspect of the present invention is a method of constructing orthogonal codes of length N for use in a network utilizing quasi-synchronous code division multiple access combined with time division duplexing, the method comprising a) determining the balanced vectors of length N, being all possible cross-correlation vectors resulting from zero cross-correlation of codes of length N; b) providing an arbitrary code of length N; c) performing bitwise XOR-ing with all the balanced vectors determined in a), to produce a set of codes with which the arbitrary code is orthogonal; d) performing bitwise XOR-ing of the balanced vectors determined in a); e) adding the code to a set of orthogonal codes if the result of d) is balanced; f) performing a)-e) until the set of orthogonal codes is complete; and g) applying the set of orthogonal codes to a plurality of data streams in the network so as to provide spread spectrum data streams.

Another aspect of the present invention is a method of deriving alternative sets of orthogonal codes for use in a network utilizing quasi-synchronous code division multiple access combined with time division duplexing, the method comprising a)representing a given orthogonal code set as a matrix in N*N matrix format with N being an even number for binary codes, and being an integer for non-binary codes; and b)performing at least one of the following on the N*N matrix of a):

Exchanging columns in the matrix;

Exchanging rows in the matrix;

Inverting columns in the matrix;

Inverting rows in the matrix;

so as to obtain an alternative set of orthogonal codes.

A further aspect of the present invention is a method of deriving a subset out of N codes of length N, with N being an even number for binary codes and being an integer for non-binary codes, for use in a network utilizing quasi-synchronous code division multiple access combined with time division duplexing, for which all mutual cross-correlation functions are zero over more than one subsequent point, starting with the first point of the cross-correlation function, the method comprising a)selecting an orthogonal code set; b) deriving alternative sets of orthogonal codes for use in the network so as to group zeros in the cross-correlation function as the first points of the cross-correlation function; c) selecting the solutions which have a well-peaked response by investigating auto-correlation functions during the search process; and d) applying the solutions selected in c) to a plurality of data streams in the network so as to provide spread spectrum data streams.

Another aspect of the present invention is a method of deriving M orthogonal codes of length N+M for use in a network utilizing quasi-synchronous code division multiple access combined with time division duplexing, the method comprising concatenating a set of M orthogonal codes of length N and a set of M orthogonal codes of length M, respectively.

Another aspect of the present invention is a method of constructing binary codes for use in a network utilizing quasi-synchronous code division multiple access combined with time division duplexing from a combination of two different sets of codes, the method comprising providing a first code of one of the sets as a generator; providing a second code of one of the sets as a seed; replacing a bit of the first code by the corresponding bit of the second code if the corresponding bit is a zero, or replacing the bit by the bit-inverse of the corresponding bit of the second code if the corresponding bit is a one; and applying the resulting code to a plurality of data streams in the network so as to provide spread spectrum data streams.

Another aspect of the present invention is a method of fast acquisition of auto-correlation peaks for use in a network utilizing quasi-synchronous code division multiple access combined with time division duplexing, using codes with equally-spaced peaks, the method comprising searching for a auto-correlation peak; testing for the validity of the choice; if the choice is not correct, testing the next auto-correlation peak; and if the choice is correct, applying the chosen codes to a plurality of data streams in the network so as to provide spread spectrum data streams.

Another aspect of the present invention is a method of obtaining a higher aggregate network capacity through reduction of the cross-correlations between concurrent transmissions in a network utilizing quasi-synchronous code division multiple access combined with time division duplexing, the method comprising extending a direct spread symbol with a partial duplication of the direct spread symbol, resulting in even cross-correlation.

Another aspect of the present invention is time division duplex communication system using synchronous code division multiple access (S-CDMA) communication in the forward link between one master station and multiple slave stations, and quasi synchronous code division multiple access (QS-CDMA) in the return link between the multiple slave stations, the system comprising a master station transmit cycle configured to synchronize the slave stations to a beacon signal transmitted by the master station, acknowledge each of the codes by the one master station from a slave station transmit cycle received from any successfully demodulated slave stations, and transmit direct spread data to any earlier already acknowledged slave stations; the slave station transmit cycle configured to transmit, by each slave station having obtained the synchronization, a code selected from a list to the master station, or transmit data, direct spread by the code from slave stations already having received the acknowledgement from the master station transmit cycle; and a repeat loop to return the system to the master station transmit cycle.

Another aspect of the present invention is a method of constructing non-binary digital orthogonal code sequences of length N, with N any natural number, for use in a network utilizing quasi-synchronous code division multiple access combined with time division duplexing, the method comprising providing a unity base in an N-dimensional vector space, V, having operations comprising addition of vectors (+) and scalar product of vectors (.); applying consecutive base transformations to the base; representing the resulting base vectors by their coordinates in the N-dimensional vector space to obtain a set of orthogonal codes; and applying the set of orthogonal codes to a plurality of data streams in the network so as to provide spread spectrum data streams. The base transformations can comprise selecting two base vectors out of the N base vectors; determining the plane defined by the two base vectors; and rotating the two base vectors over the same angle in the plane.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example dynamic code allocation and contention resolution cycle in a wireless communication network of the present invention.

FIG. 2 illustrates the code set generated by a method of the invention wherein the quality of the signal is maintained due to the out-phase cross-correlation.

DETAILED DESCRIPTION OF THE INVENTION

The invention is a method of multiplexing users in a network using QS-CDMA combined with TDD. The Quasi-Synchronous Communication in the return link (i.e., from user terminal to base station) is realized by RX/TX switching at the user terminals based on reception of an end-of-transmit bit. Due to propagation time differences, the arrival times of symbol edges at the base station side are not perfectly synchronous. However, the codes used are such that the cross-correlation is minimal. In a described variant of the system, perfectly zero cross-correlation is obtained between the quasi-synchronous return links. The net effect is a minimized or zero self-noise, increasing the available Eb/NØ and ameliorating the BER, compared to systems with self noise. The net effect is an increased capacity for the same Eb/NØ and BER as in systems with self-noise. Code construction methods are described in the invention.

The application domain of the invention comprises (non-limitative list): satellite communications with mobile and fixed terminals, cellular communications, short-range terrestrial communications (like for data collection), CATV upstream/downstream modems, powerline modems, copper-wire telephone lines.

The following abbreviations are used in this patent application:

BER: Bit Error Rate

BPSK: Binary Phase Shift Keying

CATV: Community Antenna Television, i.e., cable TV

CDMA: Code Division Multiple Access

Chip: PN-Code bit

CSM: Code Shift Modulation

DSRC: Dedicated Short Range Communication

Eb: Energy per bit

NØ: Noise Power Density

PN: Pseudo Noise

QS-CDMA: Quasi Synchronous CDMA

RX: Receive

S-CDMA: Synchronous CDMA

TDD: Time Division Duplexing

TDMA: Time Division Multiple Access

TX: Transmit

The invention will be illustrated using several non-limiting examples and figures.

Truly orthogonal PN codes which are currently used, such as Walsh codes in the IS-95 system or OVSF (Orthogonal Variable Spreading Factor) codes in the UMTS system, lack the possibility of being used for chip phase acquisition. In systems where composed waveforms are not required, the truly orthogonal codes derived in this invention can be used for chip phase acquisition, while full orthogonality (and hence absence of cross-correlation) is preserved, and alleviating the need for power control;

Existing quasi-synchronous CDMA proposals can be simplified using the method described in this invention to guarantee even cross-correlation over the uncertainty range of the chip phase control loop. An important application is mobile satellite communications, where a relaxed control loop is sufficient to keep the cross-correlation low, with only a small penalty in capacity loss.

For short-range applications, the TDD network is of particular interest because it provides dynamic multiple access capabilities without a chip phase control loop.

These methods and implementations are particularly useful in the increasing number of CDMA-based terrestrial and satellite proprietary applications which are currently developed.

EXAMPLE 1 A Method for the Construction of Orthogonal Binary Codes

If two codes are orthogonal then the result of the cross-correlation function is zero.

(CC(A,B)=0<=>(A XOR B) is balanced)

If PN-Code A and PN-Code B are orthogonal (with A XOR B=R) and if PN-Code A and PN-Code C are orthogonal (with A XOR C=S) and if PN-Code R and PN-Code S are orthogonal then PN-Code B and PN-Code C are orthogonal. In other words, the initial orthogonal PN-code set {A,B} has been extended with the new PN-Code C to a new orthogonal set {A,B,C}. $\begin{matrix} {{{CC}\left( {R,S} \right)} = \left. 0\quad\Leftrightarrow\quad {\left( {R\quad {XOR}\quad S} \right)\quad {is}\quad {balanced}\quad {substitution}} \right.} \\ \left. \Leftrightarrow\quad {\left( {\left( {A\quad {XOR}\quad B} \right)\quad {XOR}\quad \left( {A\quad {XOR}\quad C} \right)} \right)\quad {is}\quad {balanced}} \right. \\ {{x\quad {XOR}\quad \left( {y\quad {XOR}\quad z} \right)} = \quad {{\left( {x\quad {XOR}\quad y} \right)\quad {XOR}\quad z} = {x\quad {XOR}\quad y\quad {XOR}\quad z}}} \\ {\quad {{x\quad {XOR}\quad y} = \quad {y\quad {XOR}\quad x}}} \\ \left. \Leftrightarrow\quad {\left( {\left( {A\quad {XOR}\quad A} \right)\quad {XOR}\quad \left( {B\quad {XOR}\quad C} \right)} \right)\quad {is}\quad {balanced}} \right. \\ {{x\quad {XOR}\quad x} = \quad 0} \\ \left. \Leftrightarrow\quad {\left( {0\quad {XOR}\quad \left( {B\quad {XOR}\quad C} \right)} \right)\quad {is}\quad {balanced}} \right. \\ {{x\quad {XOR}\quad 0} = \quad x} \\ \left. \Leftrightarrow\quad {\left( {B\quad {XOR}\quad C} \right)\quad {is}\quad {balanced}} \right. \\ {\left. \Leftrightarrow\quad {{CC}\quad \left( {B,C} \right)} \right. = 0} \end{matrix}$

EXAMPLE 1A

$\begin{matrix} {{{A = 1001},{B = {\left. 0011\Rightarrow\quad R \right. = {{A\quad {XOR}\quad B} = {{1001\quad {XOR}\quad 0011} = 1010}}}}}\quad} \\ {\quad ({balanced})} \\ {{{A = 1001},{C = {\left. 1111\Rightarrow\quad S \right. = {{A\quad {XOR}\quad C} = {{1001\quad {XOR}\quad 1111} = 0110}}}}}\quad} \\ {\quad ({balanced})} \\ {{R = 1010},{S = {\left. 0110\quad\Rightarrow\quad {R\quad {XOR}\quad S} \right. = {{1010\quad {XOR}\quad 0110} = 1100}}}} \\ {\quad ({balanced})} \\ {\left. \Rightarrow\quad {B\quad {XOR}\quad C} \right. = {{0011\quad {XOR}\quad 1111} = 1100}} \\ {\quad ({balanced})} \end{matrix}$

A, B and C are a set of three orthogonal codes.

These steps can be repeated with all the PN-Codes that are orthogonal with A, until the results aren't balanced anymore.

The number of codes that are balanced is:

n!/((n/2)!*(n/2)!)

with n=number of chips in the PN-Code and n is always even.

EXAMPLE 1B

$\begin{matrix} {n = {\left. 4\Rightarrow\quad {{4!}/\left( {{2!}*{2!}} \right)} \right. = 6}} \\ \left. \Rightarrow\quad {6\quad {balanced}\quad 4\text{-}{bit}\quad {PN}\text{-}{Codes}} \right. \\ \left. \Rightarrow\quad {0011\quad 0101\quad 0110\quad 1001\quad 1010\quad 1100} \right. \end{matrix}$

The decimal representation of these codes is: 3, 5, 6, 9, 10 and 12

If one takes an arbitrary 4-bit PN-code and wants to find all the PN-codes that are orthogonal with this arbitrary PN-Code, one can use the balanced codes and XOR them with the arbitrary PN-Code. This will result in a set of PN-Codes that are orthogonal.

X XOR balanced_code=Y<=>X XOR Y=balanced_code

<=>CC(X,Y)=0

EXAMPLE 1C

Decimal representation of the binary code is used.

Arbitrary code=13 (=1101), balanced codes={3, 5, 6, 9, 10, 12} $\begin{matrix} {{13\quad {XOR}\quad 3} = 14} & \quad & {{13\quad {XOR}\quad 14} = 3} & \quad & {{{CC}\left( {13,14} \right)} = 0} \\ {{13\quad {XOR}\quad 5} = 8} & \quad & {{13\quad {XOR}\quad 8} = 5} & \quad & {{{CC}\left( {13,8} \right)} = 0} \\ {{13\quad {XOR}\quad 6} = 11} & \Leftrightarrow & {{13\quad {XOR}\quad 11} = 6} & \Leftrightarrow & {{{CC}\left( {13,11} \right)} = 0} \\ {{13\quad {XOR}\quad 9} = 4} & \quad & {{13\quad {XOR}\quad 4} = 9} & \quad & {{{CC}\left( {13,4} \right)} = 0} \\ {{13\quad {XOR}\quad 10} = 7} & \quad & {{13\quad {XOR}\quad 7} = 10} & \quad & {{{CC}\left( {13,7} \right)} = 0} \\ {{13\quad {XOR}\quad 12} = 1} & \quad & {{13\quad {XOR}\quad 1} = 12} & \quad & {{{CC}\left( {13,1} \right)} = 0} \end{matrix}$

We now have all the PN-Codes that are orthogonal with the arbitrary PN-code, by checking the cross-correlation of balanced results, we can find PN-Codes that are mutually orthogonal and so extend the orthogonal set of PN-Codes. As an example, one can check the result of 13 XOR 14 (=3) with all other results. $\begin{matrix} {{3\quad {XOR}\quad 5} = 6} & \quad & {{{{CC}\left( {14,8} \right)} = 0}\quad} & \quad & {{{CC}\left( {13,14,8} \right)} = 0} \\ {{3\quad {XOR}\quad 6} = 5} & \quad & {{{{CC}\left( {14,11} \right)} = 0}\quad} & \quad & {{{CC}\left( {13,14,11} \right)} = 0} \\ {{3\quad {XOR}\quad 9} = 10} & \Leftrightarrow & {{{CC}\left( {14,4} \right)} = 0} & \Leftrightarrow & {{{CC}\left( {13,14,4} \right)} = 0} \\ {{{3\quad {XOR}\quad 10} = 9}\quad} & \quad & {{{CC}\left( {14,7} \right)} = 0} & \quad & {{{CC}\left( {13,14,7} \right)} = 0} \\ {{3\quad {XOR}\quad 12} = 15} & \quad & {{NOT}\quad {balanced}} & \quad & \quad \end{matrix}$

One can repeat this check with the result of 3 XOR 5 (=6) and all other balanced results. $\begin{matrix} {{6\quad {XOR}\quad 5} = 3} & \quad & {{{{CC}\left( {8,11} \right)} = 0}\quad} & \quad & {{{CC}\left( {13,14,8,11} \right)} = 0} \\ {{6\quad {XOR}\quad 10} = 12} & \Leftrightarrow & {{{CC}\left( {8,4} \right)} = 0} & \Leftrightarrow & {{{CC}\left( {13,14,8,4} \right)} = 0} \\ {{6\quad {XOR}\quad 9} = 15} & \quad & {{NOT}\quad {balanced}} & \quad & \quad \end{matrix}$

One can repeat the check again with the result of 6 XOR 5 (=3) and the one of 6 XOR 10 (=12)

3 XOR 12 =15<=>NOT balanced

So (8,11,13,14) and (4,8,13,14) are orthogonal code sets.

EXAMPLE 2 A Method for Deriving Alternative Sets of Orthogonal Codes

If one has a set of orthogonal codes, presented in matrix format, (with the first even cross-correlation point equal to zero), then a new set of orthogonal codes can be obtained by

A: Permutation of the columns;

B: Permutation of the rows;

C: Inverting an arbitrary column;

D: Inverting an arbitrary row.

EXAMPLE 2A

4 orthogonal codes as starting point. $\begin{matrix} 0000 & {col2} & 0000 & {col4} & 0001 & {row4} & 0001 \\ 0101 & o & 0011 & \iota & 0010 & \iota & 0010 \\ 0011 & {col3} & 0101 & {!{col4}} & 0100 & {!{row4}} & 0100 \\ 0110 & \quad & 0110 & \quad & 0111 & \quad & 1000 \end{matrix}$

This is in fact a set suited for CSM which is orthogonal.

EXAMPLE 3 A Method for the Construction of Even Zero Cross-correlation Codes for a Number of Consecutive Points

Perform the manipulations on a set of orthogonal codes, like in example 2, in order to obtain a subset of codes with a number of consecutive points (greater than 1) equal to zero. Investigate the auto-correlation functions during the search process in order to retain the solutions which have a well peaked response.

EXAMPLE 4 A Method for the Construction of Even Zero Cross-correlation Codes of Length N+M, Given Orthogonal Codes of Length N and M

These codes are generated by concatenating the codes with length N and M in order to obtain a new code with length N+M.

EXAMPLE 4A

N=8 and M=4, then 4 orthogonal codes of length 12 can be made.

EXAMPLE 5 A Method for Constructing Codes Out of a Combination of Two Different Sets

1. Take one code (or code family) A (the ‘generator’)

2. Take a second code (or code family) B (the ‘seed’)

3. Replace every bit of code A by code B, taking code B if the bit in code A is zero, taking the bit-inverse of code B if the bit in code A is one.

This gives a new code of length A*B, called a ‘genetic’ code

EXAMPLE 5A

$\begin{matrix} {{{{Code}\quad A} = \quad 1010},{{{Code}\quad B} = 1110}} \\ {\left. \Rightarrow\quad {{{combined}{\quad \quad}({genetic})}\quad {code}} \right. = \begin{matrix} 0001 & 1110 & 0001 & 1110 \\ {!B} & B & {!B} & B \end{matrix}} \end{matrix}$

Properties regarding auto- and cross-correlation of the ‘generator’ code are preserved, but mixed/modified with the properties of the ‘seed’ code.

Assume a code A with good cross-correlation, but bad auto-correlation properties and assume a code B with good cross-correlation and good auto-correlation properties, then a new code can be constructed with good cross-correlation properties and an auto-correlation profile containing several, equally-spaced peaks. The distance between the peaks is the length of code B, and the number of peaks is the length of code A.

Code families can be constructed with predictable properties, of any given length (extensive investigation required to search for exact quality transfer capabilities).

A consequence of examples 1 to 5 is that manipulation allows to have any code of a certain length in some set. Hence spectral properties, autocorrelation profile, etc. can be influenced in this way.

EXAMPLE 6 A Method for a PN-Code Fast Acquisition, Using Codes with Equally Spaced Peaks

Given a code with not one, but several equally-spaced auto-correlation peaks, it is possible to reduce the acquisition time with the following algorithm:

1. Search for any auto-correlation peak in the code using any method;

2. Test for the validity of the choice (since there are several possibilities) e.g., by demodulating a few bits;

3. If the choice is not correct, immediately test the next auto-correlation peak. The position of this peak is already known, since they are equidistant;

4. If the choice is valid, the acquisition is obtained.

The advantage here is the dramatically reduced acquisition time, required for long codes.

EXAMPLE 7 A Method to Guarantee an Even Cross-correlation on the First Symbol Sent

The symbols are sent out twice, in order to guarantee the first symbol always being in the presence of even cross-correlation only. This can be further extended by also providing a repetition before the symbol of interest (to allow both mutually advanced and retarded simultaneous links). The technique can be optimized by a PARTIAL duplication before and after the symbol of interest, just enough to provide even cross correlation in all circumstances.(This requires an adaptation of the active integration times at the base station).

EXAMPLE 7A

$\begin{matrix} {code} & 1101011101 \\ {{extended}\quad {code}} & 1011101011101110 \end{matrix}$

In cases were only a limited set of codes is required (and furthermore the external interference rejection rather than the capacity of the system is important), full-zero even cross correlation can be obtained always, by applying the technique of doubling the data bits sent out.

In the two cases above, zero self-noise is obtained during tracking.

If the propagation delay between base station (gateway, hub, headend, . . . ) and user terminal is too high, it can be possible that synchronization within 1 symbol period (or within N chips) is impossible by simple TDD. In this case, a relaxed pilot concept (cfr. BLQS-CDMA R. De Gaudenzi) can be applied, still preserving the zero self-noise achievement. So this becomes also valid for satellite communications networks.

EXAMPLE 7B

A Cellular Network

The capacity of a cellular network or any other network that is interference-limited can be increased with the described technique. An important consequence and advantage of the zero self-noise property is the fact that tight transmit power control can be relaxed or even becomes obsolete.

What is still of importance however is the multipath degradation. In order to solve this, systems like IS-95 networks use Gold code scrambling to ameliorate the autocorrelation profile of the proposed codes. However, by applying the RULES above, the start set of orthogonal codes is scrambled and randomized, resulting in better autocorrelation properties.

CALCULATIONS for Cellular Network

Suppose a symbol rate of 5 kSps and a cell radius of 5 km. The worst case direct path propagation time then equals:

10·10³·5·10³/3·10⁸=⅙th symbol period

This means that for a code length 16, three consequent zero's need to exist in the mutual even cross-correlation's. As more processing gain is left, due to minimized or zero self-noise, the FEC overhead can be minimized as well, again contributing to higher capacity. Otherwise, short codes will give rise to the best chances for relatively long runs of even zero cross-correlation. But this is good, as the absolute time of even zero cross-correlation is important, in the light of catching the propagation time uncertainty. The smaller channels, resulting from the shorter codes, can suffer more co-channel interference (overlapping channels) due to the higher processing gain available.

EXAMPLE 8 An Apparatus (Implemented Network) with a TDD Layer for the QS-CDMA Return Link, Dynamic Code Allocation and Contention Resolution

The implementation of the network, as shown in FIG. 1, is based on 3 sub-cycles:

1.: SUB-CYCLE 1 (Log-On Phase)

The MASTER transmits a cell identifier and a list of free codes (or code sets) to be used by the SLAVES in the Collision Resolving Phase. The MASTER uses a reserved PN-Code, the“MASTER-broadcast-code”. The SLAVES are in standby mode and are searching for this message. Ones the message has been received, the transmitters of the SLAVES will be synchronized. An FFT was also taken, so a precompensated carrier can be used in the next sub-cycle.

2.: SUB-CYCLE 2 (Collision Resolving Phase)

All the SLAVES try to transmit with one code from the list, selected randomly. The start epochs of the different SLAVES will be synchronized as good as possible, in order to reduce the cross-correlation energy as much as possible. The precompensated carrier is used here, so the MASTER can start demodulation without taking an FFT (replacing the FFT to the MASTER would result in higher bit error probability because of false FFT peaks resulting from noise. Noise received by SLAVE is lower because of pure S-CDMA transmission by Base Station).

During sub-cycle 2, all the receivers of the SLAVES are freewheeling.

3.: SUB-CYCLE 3 (Acknowledging Phase)

The MASTER answers all messages it could demodulate, but due to collisions (e.g., SLAVES using the same code) it is possible that not all messages are received. SLAVES can lock in directly because in sub-cycle 1, they have taken an FFT and performed acquisition. In sub-cycle 2, they have been freewheeling. SLAVES that didn't got an answer, can repeat sub-cycles 2 and 3. SLAVES that got an answer, can use sub-cycle 2 to send a new message.

EXAMPLE 9 A Method for Constructing Orthogonal Non-binary Digital Codes of Length N, with N Integer

Let S be a set of N mutually orthogonal vectors in an N-dimensional vector space, defined with the operations “+” (addition of vectors) and “.” (scalar product of vectors). Each vector can be represented by its coordinates with respect to the unity base in the defined vector space. By definition, the scalar product of every 2 vectors out of the set S is equal to zero.

Now one views these coordinates representations as digital sequences of a set of digital codes. The cross-correlation of each pair of sequences out of the set S, defined as:

Σ(Ai*Bi) i=1 to N

is equal to zero, because the corresponding vectors are orthogonal, and the cross-correlation definition is equivalent to the scalar product of the corresponding vectors.

EXAMPLE 9A

(1,0,0,0,0)

(0,1,0,0,0)

(0,0,1,0,0)

(0,0,0,1,0)

(0,0,0,0,1)

is the unity base in the 5-dimensional vector space V, +, . . . When applying these coordinates as digital codes, the 1's correspond to activity (burst), and the 0's correspond to the off-state. The manipulation mechanisms explained above are also applicable here. The applicability of this code generation technique lies in the fact that orthogonal code sets can be obtained for any length. A set is constructed starting from a base, consisting of unity vectors, and then consecutive base transformations are applied, yielding a new base. In the new base, arbitrary gains can be applied to each vector, yielding an orthogonal codes set.

EXAMPLE 9B

Example of construction of a non-binary orthogonal code set of length 5, starting from a base of the 5-dimensional vector space V, +, .

(1,0,0,0,0) V1

(0,1,0,0,0) V2

(0,0,1,0,0) V3

(0,0,0,1,0) V4

(0,0,0,0,1) V5

Suppose one applies subsequent transformations on 2 vectors Ai and Aj as such:

Ai−>Aj+mod(Aj)/mod(Ai)*Ai

Aj−>Ai−mod(Ai)/mod(Aj)*Aj

Then one obtains a new set which is still orthogonal, i.e., the scalar vector product: Ai·Aj=0

This transformation rotates 2 orthogonal vectors, in the plane defined by these vectors, over 45 degrees, and provides a gain of 1/0.707

EXAMPLE

$\begin{matrix} \left( {1,0,0,0,0} \right) & {V1} & \left( {1,1,0,0,0} \right) & {{V1} + {V2}} & -> & {V1} & {{{mod}({V1})} = 1.41} \\ \left( {0,1,0,0,0} \right) & {V2} & \left( {1,{- 1},0,0,0} \right) & {{V1} - {V2}} & -> & {V2} & {{{mod}({V2})} = 1.41} \\ \left( {0,0,1,0,0} \right) & {V3} & \left( {0,0,1,1,0} \right) & {{V3} + {V4}} & -> & {V3} & {{{mod}({V3})} = 1.41} \\ \left( {0,0,0,1,0} \right) & {V4} & \left( {0,0,1,{- 1},0} \right) & {{V3} - {V4}} & -> & {V4} & {{{mod}({V4})} = 1.41} \\ \left( {0,0,0,0,1} \right) & {V5} & \left( {0,0,0,0,1} \right) & {V5} & -> & {V5} & {{{{mod}({V5})} = 1}\quad} \\ \left( {1,1,0,0,0} \right) & {V1} & \quad & \quad & -> & {V1} & {{{mod}({V1})} = 1.41} \\ \left( {1,{- 1},0,0,0} \right) & {V2} & \quad & \quad & -> & {V2} & {{{mod}({V2})} = 1.41} \\ \left( {0,0,1,1,0} \right) & {V3} & \quad & \quad & -> & {V3} & {{{mod}({V3})} = 1.41} \\ \left( {0,0,0.707,{- 0.707},1} \right) & {{V5} + {1/1.41}} & \quad & {V4} & -> & {V4} & \quad \\ \left( {0,0,1,{- 1},1.41} \right) & {{V4} - {1.41/1}} & \quad & {V5} & -> & {V5} & \quad \end{matrix}$

The advantage of this method is that a fully orthogonal set can be defined for any dimension (code length).

EXAMPLE 10 A Method to Generate a Waveform with a Plurality of Orthogonal PN Codes, to Modulate a Plurality of Data Streams, Together with a Non-orthogonal PN-code, having Good Autocorrelation Properties

This method comprises the steps of:

1. Take a plurality of orthogonal codes (e.g., using the techniques mentioned above) that are used to spread a plurality of data streams;

2. Combine each of said spread data streams with in-phase BPSK modulations, and perform the addition, after optional gain control of each spread stream;

3. Define a PN-code with good autocorrelation properties, and combine said code with BPSK modulation, which is orthogonal (90 degrees out-of-phase) with the BPSK of step 2.;

4. Combine the signals of step 2 and of step 3 as a complex signal with time-aligned PN-codes.

The advantage of this code set is that there is a code with good autocorrelation properties, so acquisition can be done without problems. The cross-correlation properties between the orthogonal codes of step 2 and the code of step 3, do not influence the quality of the signal because it is“out-phase cross-correlation” See FIG. 2.

EXAMPLE 11 A Method to Demodulate the Above Waveform

The method comprises the steps of:

1. Search the PN Code start of said code with good autocorrelation properties;

2. Track said PN code with good autocorrelation properties;

3. Despread and demodulate said data streams which are time-aligned with said PN-code with good autocorrelation properties.

Conclusion

Certain embodiments provide a new method of multiplexing users in a network using QS-CDMA combined with TDD.

Certain embodiments provide an apparatus that comprises said method.

Certain embodiments provide a QS-CDMA-TDD network comprising a base station and user terminals.

While the above detailed description has shown, described, and pointed out the fundamental novel features of the invention as applied to various embodiments, it will be understood that various omissions and substitutions and changes in the form and details of the system illustrated may be made by those skilled in the art, without departing from the intent of the invention. 

What is claimed is:
 1. A method of deriving a subset out of N codes of length N, with N being an even number for binary codes and being an integer for non-binary codes, for use in a network utilizing quasi-synchronous code division multiple access combined with time division duplexing, for which all mutual cross-correlation functions are zero over more than one subsequent point, starting with the first point of the cross-correlation function, the method comprising: a) selecting an orthogonal code set, wherein the orthogonal code set is represented as a matrix; b) grouping zeros in the cross-correlation function as the first points of the cross-correlation function, comprising: exchanging columns in the matrix, exchanging rows in the matrix, inverting columns in the matrix, and inverting rows in the matrix; c) selecting the solutions which have well-peaked auto-correlation functions; and d) applying the solutions selected in c) to a plurality of data streams in the network so as to provide spread spectrum data streams.
 2. A method of deriving M orthogonal codes of length N+M for use in a network utilizing quasi-synchronous code division multiple access combined with time division duplexing, the method comprising concatenating a set of M orthogonal codes of length N and a set of M orthogonal codes of length M, respectively.
 3. A method of constructing binary codes for use in a network utilizing quasi-synchronous code division multiple access combined with time division duplexing from a combination of two different sets of codes, the method comprising: providing a first code of one of the sets as a generator; providing a second code of one of the sets as a seed; replacing a bit of the first code by the corresponding bit of the second code if the corresponding bit is a zero, or replacing the bit by the bit-inverse of the corresponding bit of the second code if the corresponding bit is a one; and applying the resulting code to a plurality of data streams in the network so as to provide spread spectrum data streams.
 4. A method of fast acquisition of auto-correlation peaks for use in a network utilizing quasi-synchronous code division multiple access combined with time division duplexing, using codes with equally-spaced peaks, the method comprising: searching for a auto-correlation peak; testing for the validity of the choice; if the choice is not correct, testing the next auto-correlation peak; and if the choice is correct, applying the chosen codes to a plurality of data streams in the network so as to provide spread spectrum data streams.
 5. A method of obtaining a higher aggregate network capacity through reduction of the cross-correlations between concurrent transmissions in a network utilizing quasi-synchronous code division multiple access combined with time division duplexing, the method comprising extending a direct spread symbol with a partial duplication of the direct spread symbol, resulting in even cross-correlation.
 6. A time division duplex communication system using synchronous code division multiple access (S-CDMA) communication in the forward link between one master station and multiple slave stations, and quasi synchronous code division multiple access (QS-CDMA) in the return link between the multiple slave stations, the system comprising: a master station transmit cycle configured to: synchronize the slave stations to a beacon signal transmitted by the master station, acknowledge each of the codes by the one master station from a slave station transmit cycle received from any successfully demodulated slave stations, and transmit direct spread data to any earlier already acknowledged slave stations; the slave station transmit cycle configured to: transmit, by each slave station having obtained the synchronization, a code selected from a list to the master station, or transmit data, direct spread by the code from slave stations already having received the acknowledgement from the master station transmit cycle; and a repeat loop to return the system to the master station transmit cycle.
 7. A method of constructing non-binary digital orthogonal code sequences of length N, with N any natural number, for use in a network utilizing quasi-synchronous code division multiple access combined with time division duplexing, the method comprising: providing a unity base in an N-dimensional vector space, V, having operations comprising addition of vectors (+) and scalar product of vectors (.); applying consecutive base transformations to the base; representing the resulting base vectors by their coordinates in the N-dimensional vector space to obtain a set of orthogonal codes; and applying the set of orthogonal codes to a plurality of data streams in the network so as to provide spread spectrum data streams.
 8. The method of claim 7, wherein the base transformations comprise: selecting two base vectors out of the N base vectors; determining the plane defined by the two base vectors; and rotating the two base vectors over the same angle in the plane. 